Hi Artem, 

I originally had this code in the superclass but it broke the Router etc - notice that those classes already make a direct call if the object is of the expected type (router, splitter etc).

I don't think this code would ever be invoked for a `splitter`, `transformer`, `filter` because they always need a reply - it wouldn't make sense to use a `MessageHandler` for those components. But I suppose we could use this shortcut technique if a `Router` is implemented as a simple `MessageHandler` rather than being an `AbstractMessageRouter`.