I'm thinking it might make sense to remove `Router()` from the PluginHelper API altogether, so folks don't accidentally subvert the self-injection check by grabbing the router themselves. In this runner code, we can still get to it via `helper.PipelineConfig().router`. Note this would mean the `InputRunner` would also have to grow an `Inject` method, which would do nothing more than put the message on the router's channel.