A Splitter (259) can split a single message into multiple parts. A Content-Based Router (230) could then route individual submessages through the correct processing steps based on message content or type. The Pipes and Filters (70) architectural style allows us to chain together these two patterns so that we can route each item in the composed message to the appropriate processing steps:

