public bool CanBuildRoad(Edge edge) { if (!IsLegalEdge(edge)) return false; return !roads.ContainsKey(edge); }