docs: def disconnect(self, connection):
          """
          Removes a subscriber connection, ensuring that any pending commands get requeued.
  
          @param connection: The client connection to unsubscribe.
          @type connection: L{coilmq.server.StompConnection}
          """
          self.log.debug("Disconnecting %s" % connection)
          if connection in self._pending:
              pending_frame = self._pending[connection]
              self.store.requeue(pending_frame.headers.get(
                  'destination'), pending_frame)
              del self._pending[connection]
  
          for dest in list(self._queues.keys()):
              if connection in self._queues[dest]:
                  self._queues[dest].remove(connection)
              if not self._queues[dest]:
                  # This won't trigger RuntimeError, since we're using keys()
                  del self._queues[dest]