private Edge FindBestRoad(Intersection from, IBoard board) { // find the best neighbor intersection and takes the edge to that return GetEdgeBetween(FindBestIntersection(GetEnds(from, board),board),from); }