public WaypointNode EnterInAvailableQueue(Shopper shopper, WaypointNode currentNode)
    {
        var registerNodesQueue = currentNode.Edges.Where(e => e.waypointType == WaypointNode.WaypointType.Register)
                                 .ToArray();

        for (int i = m_CurrentServingQueue; i < registerNodesQueue.Length;)
        {
            var queue = registerNodesQueue[i].gameObject.GetComponent <StoreSimulationQueue>();
            if (queue && queue.EnterTheQueue(shopper))
            {
                shopper.Behavior      = Shopper.BehaviorType.InQueue;
                m_CurrentServingQueue = (m_CurrentServingQueue + 1) % registerNodesQueue.Length;
                return(registerNodesQueue[i]);
            }

            i++;
        }

        shopper.SetWaypoint(currentNode, true);
        return(currentNode.GetRandomNeighbor());
    }