The two-echelon vehicle routing problem