Engine & Flow can take additional 'default' states

This enables plugins to be passed in by client applications.

Non blocking: Would it be worth adding an example/test state thats a `proc`? It would assert the expected behaviour for callables (which is to to return the result of calling them) and demonstrate that it's supported to someone reading the tests as documentation.