Removed difference requirements

Avoid breaking non-immutable usage.
Added a test

Test returning a value from a command that has the same name as a
default command.
Added a test for commands
Updated readme
Added a test for emitter returns
Implemented emitter filtering
Updated readme