A handler implementation that helps you implement complex protocols by splitting
messageReceived
handlers into multiple sub-handlers.