Urban road congestion is getting worse with the increasing population and car ownership. Traditional solutions, such as increasing road capacity and dynamic control and adaptation of traffic lights, rely heavily on infrastructure support, which limits their wider adoption and practicality. Vehicle navigation systems, such as Google Maps, TomTom, and AutoNavi, are widely used due to the popularization of smartphones. However, these systems normally provide routes with either shortest travel distance or fastest current travel speed, without any consideration of the drivers' route preferences. For example, the safety level of a road is also very important as it often leads to non-recurring congestion that is more difficult to avoid. In this paper, we propose, implement, and test a personalized routing application that allows end-users to flexibly adjust their route preferences among travel distance, estimated travel time, and the safety level. We present the validation results of our application using a realistic dataset from the city of Manchester in England.