Lazy listen in StreamRouter, cancel subscription when no longer needed.

Closed #28.
set `listenerWasAdded = true` instead of expect()ing