Abstract-Wireless sensor networks (WSNs) are increasingly proposed for applications characterized by many-to-many communication, where multiple sources report their data to multiple sinks. Unfortunately, mainstream WSN collection protocols are generally designed to account for a single sink and, dually, WSN multicast protocols optimize communication from a single source.In this paper we present MUSTER, a routing protocol expressly designed for many-to-many communication. First, we devise an analytical model to compute, in a centralized manner, the optimal solution to the problem of simultaneously routing from multiple sources to multiple sinks. Next, we illustrate heuristics approximating the optimal solution in a distributed setting, and their implementation in MUSTER. To increase network lifetime, MUSTER minimizes the number of nodes involved in many-tomany routing and balances their forwarding load. We evaluate MUSTER in emulation and in a real WSN testbed. Results indicate that our protocol builds near-optimal routing paths, doubles the WSN lifetime, and overall delivers to the user 2.5 times the amount of raw data w.r.t. mainstream protocols. Moreover, MUSTER is intrinsically amenable to in-network aggregation, pushing the improvements up to a 180% increase in lifetime and a 4-time increase in data yield.