Add tests for refactored navigation events handling.

*   Ensure both events and callbacks are dispatched and executed, respectively.
*   Ensure that cancellation of events and callbacks is propagated.
*   Ensure that passed data is identical for events and callbacks.
*   Ensure that canceling callbacks or skipping events does not dispatch events.

Progress on #12.