def unbind(exchange, opts = {})
      if exchange.respond_to?(:remove_route)
        # we can do the unbinding ourselves
        exchange.remove_route opts.fetch(:routing_key, @name), self
      else
        # we need the channel to look up the exchange
        @channel.xchg_unbind opts.fetch(:routing_key, @name), exchange, self
      end

      self
    end
def unbind(exchange, opts = {})
      if exchange.respond_to?(:remove_route)
        # we can do the unbinding ourselves
        exchange.remove_route opts.fetch(:routing_key, @name), self
      else
        # we need the channel to look up the exchange
        @channel.xchg_unbind opts.fetch(:routing_key, @name), exchange, self
      end

      self
    end
Unbind this exchange from another exchange

 @param [BunnyMock::Exchange,String] exchange Exchange to unbind from
 @param [Hash] opts Binding properties

 @option opts [String] :routing_key Custom routing key

 @return [BunnyMock::Exchange] self
 @api public