This method accepts a list of array references.
Each array reference should contain a role name or Moose::Meta::Role object as its first element.
The second element is an optional hash reference.
The hash reference can contain -excludes and -alias keys to control how methods are composed from the role.

When combining multiple roles using combine,
this method is used to obtain a list of role names to be applied to the Moose::Meta::Role::Composite instance returned by combine.
The default implementation returns an empty list.
Extensions that need to hook into role combination may wrap this method to return additional role names.

As with methods,
the methods for dealing with a role's attribute are all identical in API and behavior to the same methods in Class::MOP::Class.

However,
attributes stored in this class are not stored as objects.
Rather,
the attribute definition is stored as a hash reference.
When a role is composed into a class,
this hash reference is passed directly to the metaclass's add_attribute method.