Design+casespace

Algorithm
starting string
.underscore
.split(/[^w]+/)
.plot(:singularize)
.reject {|x| x=""}
.join("_")

Key:  a string identifying a casespace-- all string in casespace can be resolved to this key via above algorithm