private static void CalculateRoute(Route lastRoute, List <Route> routes, IEnumerable <Node> neighbours)
 {
     if (lastRoute.IsCompleted)
     {
         routes.Add(lastRoute);
     }
     else
     {
         foreach (Node node in neighbours)
         {
             if (lastRoute.AddCheck(node))
             {
                 Route currentRoute = lastRoute.Copy();
                 currentRoute.AddUnchecked(node);
                 CalculateRoute(currentRoute, routes, neighbours);
             }
         }
     }
 }