Roles updates

Roles, now with looser regex matching, code reuse.
Is there a way to guard against dupes in the list here?