We propose a novel routing protocol, SelfBalancing Supply/Demand (SBSD), for Publish/Subscribe in mobile ad hoc environments. SBSD is a controlled flooding that reduces network congestion by constraining how far subscriptions replicate and how many times nodes broadcast them. SBSD ranks subscriptions by a utility function. This function matches the supply of publications with the recent demand for them; more popular subscriptions are replicated farther and their replicas are retained longer. SBSD is therefore demand-driven, as more popular subscriptions are more likely to receive their matching publications and receive them sooner. We show that SBSD is scalable; routing distance is independent of network size. SBSD's performance is examined under random mobility, under challenging conditions including high node mobility and broadcast failure rates.