title: Route dead letter messages with headers exchange
body: <p>I like to route my dead letter messages into dlx queues according to the original queue name. My setup:</p>
  
  <p>The dead letter message looks like this</p>
  
  <pre><code>{
      "payload_bytes": 44,
      "redelivered": true,
      "exchange": "dlx",
      "routing_key": "foo-exchange",
      "properties": {
          "delivery_mode": 2,
          "headers": {
              "x-death": [
                  {
                      "count": 1,
                      "reason": "rejected",
                      "queue": "foo-queue",
                      "time": 1466502931,
                      "exchange": "foo-exchange",
                      "routing-keys": ["foo-exchange"]
                  }
              ]
          }
      },
  }
  </code></pre>
  
  <p>I have the following bindings:</p>
  
  <pre><code>{
      {
          "source": "header-dlx",
          "vhost": "/",
          "destination": "foo-dlx-queue",
          "destination_type": "queue",
          "routing_key": "",
          "arguments": {
            "x-death": [
              {
                "queue": "foo-queue"
              }
            ]
          }
      },
      {
          "source": "header-dlx",
          "vhost": "/",
          "destination": "bar-dlx-queue",
          "destination_type": "queue",
          "routing_key": "",
          "arguments": {
            "x-death": [
              {
                "queue": "bar-queue"
              }
            ]
          }
      }
  }
  </code></pre>
  
  <p>When I deliver the dead letter messsage to my header-dlx exchange which is a simple headers exchange, I expect that the message will dropped into the <code>foo-dlx-queue</code>, but the message got dropped into both binded dlx queues. </p>
  
  <p>Any idea what I'm doing wrong?</p>