public void Color(Graph graph)
        {
            var allRoutes = new List<List<Node>>();
            GetAllRoutes(allRoutes, graph);

            if (allRoutes.Count == 0)
                throw new Exception("No routes found.");

            int minColorCount = -1;
            List<Node> answer = null;

            foreach (var route in allRoutes)
            {
                ColorNodes(route);

                if (minColorCount == -1 || graph.GetColorCount() < minColorCount)
                {
                    minColorCount = graph.GetColorCount();
                    answer = route;
                }
            }

            ColorNodes(answer);
        }