This comment has been minimized.

Nice, looks like this would support some common use cases. A few thoughts:

In get values(), loop through this instead of through keys. Otherwise you loop twice - once to get the copy and again to iterate over it.

Naming Nitpick, I probably would have gone _bindings, _registrations, maybe something else over _providers. Note: Providers was used a lot in a past project to mean something very different, which might be why I am avoiding it here.

Some duplication at the top of bind and top of resolve. Could the logic of checking for string and turning that into Class be moved out?

Is line 50-51 support for singletons?!

What if we actually want to specify what to use for the optional parameters?

Let me encourage you to kick up asunit (let's not bring flex into this?) when this goes "official" =p