We examine the problem of routing vehicles in a road network where traffic congestion affects the time required to traverse an edge. We propose a fully distributed approach that uses only the computational resources and communication capabilities of vehicles and requires no fixed infrastructure or centralized servers. Our approach bases its operation on wireless ad-hoc communications and offers a protocol for alerting vehicles regarding traffic conditions in areas to be travelled through. Vehicles exchange estimations for the time required to reach areas of the road network and every vehicle dynamically determines the path it will follow based on estimations received from fellow travellers. Considering vehicles as selfish players in a game-theoretic framework, we relate the steady-state of our protocol with theoretical results. In this direction, our simulation focuses on confirming that the protocol adjusts rapidly to congestion variation, leading to a steady state. We also evaluate the performance of our protocol, compared to a system which uses static navigation to route vehicles, and as experimental results show, our approach achieves a better traffic distribution on the road network and provides improved average latency.