no need to cache hash lookups
sometimes singularize does not work, so we get a list of two strings. just uniq them