Dynamic ride-share systems aim to bring together travelers with similar itineraries and time schedules on short-notice. These systems may provide significant societal and environmental benefits by reducing the number of cars used for personal travel and improving the utilization of available seat capacity. Effective and efficient optimization technology that matches drivers and riders in real-time is one of the necessary components for a successful dynamic ride-share system. We systematically outline the optimization challenges that arise when developing technology to support ride-sharing and survey the related operations research models in the academic literature. We hope that this paper will encourage more research by the transportation science and logistics community in this exciting, emerging area of public transportation.