In this paper we present an extensive study of many-to-many routing on trees under the matching routing model. Our study includes on-line and off-line algorithms. We present an asymptotically optimal on-line algorithm which routes k packets to their destination within d(k \Gamma 1) + d \Delta dist routing steps, where d is the degree of tree T on which the routing takes place and dist is the maximum distance any packet has to travel. We also present an off-line algorithm that solves the same problem within 2(k \Gamma 1)+dist steps. The analysis of our algorithms is based on the establishment of a close relationship between the matching and the hot-potato routing models that allows us to apply tools which were previously used exclusively in the analysis of hot-potato routing.