rename subroute to via_point merge is_lonely_island and is_connected to make code easier to understand