Role support

We should consider adding `^[a-zA-Z0-9\+\=\,\.\@\-]{1,128}$` as a variable in layout.py.  I see layout.tag_pattern_key there, but it doesn't match the pattern here (not sure why).