 
         private var _queue:Vector.<PriorityNode>;
         private var _isDirty:Boolean;
+
+        public var verbose:Boolean = false;
 
         //------------------------------------------------------------
         public function PriorityQueue() {

            var pNode:PriorityNode = new PriorityNode(priority, item);
            _queue.push(pNode);
            _isDirty = true;
        }

        /**

         * If queue is empty, return null.
         */
        public function dequeue():* {
            if (verbose) {
                trace("[PriorityQueue :: dequeue] length:", _queue.length);
            }
            if (!_queue.length) { return null; }

            if (_isDirty) { _sort(); }
            var topItem:* = _queue.pop().item;

            if (verbose) { dumpPriority(); }
            return topItem;
        }

        /**
