A generalized and efficient algorithm for estimating transit route ODs from passenger counts