Headers exchange routes messages based on matching headers. When 'x-match' is 'all', all specified headers must match exactly for routing.
'x-match' controls how headers are matched: 'all' means every header must match, 'any' means at least one header must match for routing.
The correct command uses set_binding with --queue, --exchange, --arguments for headers, and specifies the exchange type as headers.
With 'x-match' set to 'all', every header must match exactly. Here, 'type' is 'report' in the message but 'summary' in the binding, so no routing occurs.
First create the exchange, then bind the queue with headers, publish a message with matching headers, and finally check if the queue received it.
