When we need to decouple our individual processing steps so that the message can be routed to different filtering processes based on some identifiable conditions, then we use a Message Router. It will consume the message from a message channel, review its set of conditional criteria and then pass the message to a specific message channel.
This interaction pattern differs from the Pipes and Filters pattern since it will connect to more than one outgoing message channel.
...
A key aspect of the Message Router, and another difference with Pipes and Filters, is that it will not modify the contents of the message. It is only concerned with the destination for the message and not any transformations.