public List <GraphRoute> Find(string start_table, List <string> destination_tables, bool reduce = true)
        {
            // Make sure that start table doesn't exists in list of destination tables...
            destination_tables = destination_tables.Where(z => z != start_table).ToList();

            var routes = destination_tables.Select(z => Find(start_table, z)).ToList();

            if (reduce)
            {
                return(GraphRouteUtility.Reduce(routes));
            }

            return(routes);
        }
 public GraphRoute ReduceBy(List <GraphRoute> routes)
 {
     return(new GraphRoute(Items.Where(z => !GraphRouteUtility.ExistsAny(routes, z)).ToList()));
 }