Route updated only when needed - crossing with traveled route, etc.
Returns a string representation of the object.