I think this line and the prior one are out-of-order: before deleting the `toplevel_alias` key from the hash, you want the passed-in-args normalized to a hash, right?  A specific case where I think this logic will fail is:

``` ruby
RSpec.configure do |c|
  c.alias_example_group_to :focus, :focus, toplevel_alias: true
end
```

...i.e. where symbols and a full-on hash are mixed.  When this is passed, `metadata_and_opts` will be passed in as `[ :focus, { toplevel_alias: true } ]`, right?  So the delete above will fail anyway.

Actually, if you re-order these two lines, I think it'll solve the modifying-the-passed-in-hash-as-a-side-effect-issue.

Regardless, it'd be good to have specs to cover both of these cases.