docs: def dequeue(self, destination):
          """
          Removes and returns an item from the queue (or C{None} if no items in queue).
  
          @param destination: The queue name (destinationination).
          @type destination: C{str}
  
          @return: The first frame in the specified queue, or C{None} if there are none.
          @rtype: C{stompclient.frame.Frame} 
          """
          if not self.has_frames(destination):
              return None
  
          message_id = self.queue_metadata[destination]['frames'].pop()
          self.queue_metadata[destination]['dequeued'] += 1
  
          frame = self.frame_store[message_id]
          del self.frame_store[message_id]
  
          self._opcount += 1
          self._sync()
  
          return frame