def exchange_roles *role_names
      options = last_option role_names
      raise ArgumentError, "Must take an options hash as last argument with a :with option signifying which role(s) to replace with" if !options || !options.kind_of?(Hash)        
      remove_roles(role_names.to_symbols)        
      with_roles = options[:with]
      add_roles(with_roles)
    end
def exchange_roles *role_names
      options = last_option role_names
      raise ArgumentError, "Must take an options hash as last argument with a :with option signifying which role(s) to replace with" if !options || !options.kind_of?(Hash)        
      remove_roles(role_names.to_symbols)        
      with_roles = options[:with]
      add_roles(with_roles)
    end
should exchange the current role if in list with the first valid role in :with argument