void MarkNodeAsVisisted(Node node)
 {
     if (!VisitedNodes.Contains(node))
     {
         VisitedNodes.Enqueue(node);
     }
     if (UnvisitedNodes.Contains(node))
     {
         UnvisitedNodes.Remove(node);
     }
 }