Towards Practical and Intelligent Routing in Vehicular Ad Hoc Networks