    def dequeue_by_priority(priority_order)
      priority = priority_order.detect { |p| @queue[p].any? }
      priority ||= @queue.keys.detect { |p| @queue[p].any? }
      @queue[priority].shift
    end