'Bind the queue to the specified exchange
:param callable callback: The callback to call on Queue.BindOk;
MUST be None when nowait=True.
:param queue: The queue to bind to the exchange
:type queue: str or unicode
:param exchange: The source exchange to bind to
:type exchange: str or unicode
:param routing_key: The routing key to bind on
:type routing_key: str or unicode
:param bool nowait: Do not wait for a Queue.BindOk
:param dict arguments: Custom key/value pair arguments for the binding'

def queue_bind(self, callback, queue, exchange, routing_key=None, nowait=False, arguments=None):

    self._validate_channel_and_callback(callback)
    replies = ([spec.Queue.BindOk] if (nowait is False) else [])
    if (routing_key is None):
        routing_key = queue
    return self._rpc(spec.Queue.Bind(0, queue, exchange, routing_key, nowait, (arguments or dict())), callback, replies)
