@Override
public State traverse(State s0) {
final RoutingRequest options = s0.getOptions();
final TraverseMode currMode = s0.getNonTransitMode();
StateEditor editor = doTraverse(s0, options, s0.getNonTransitMode());
State state = (editor == null) ? null : editor.makeState();
/* Kiss and ride support. Mode transitions occur without the explicit loop edges used in park-and-ride. */
if (options.kissAndRide) {
if (options.arriveBy) {
// Branch search to "unparked" CAR mode ASAP after transit has been used.
// Final WALK check prevents infinite recursion.