Throw more useful exception when attempting to access an unregistered factory
Add 'define' method as alias for 'add'. Might deprecate add in future