Vehicle routing is a complex daily task for businesses such as logistic service providers and distribution firms. Planners have to assign many orders to many vehicles and, for each vehicle, assign a delivery sequence. The objective is to minimize total transport costs. These costs typically include the number of vehicles used and the total travel distance or time. Two general timing restrictions make vehicle routing particularly difficult: traffic congestion and driving hours regulations. As a result of traffic congestion, travel times depend on the time of departure. Therefore, vehicle routing also involves the subtask of optimizing each vehicle’s departure times (both from the depot and from the customers). Driving hours regulations - which pose restrictions on driving and working times (between breaks) - have to be taken into account, making departure time optimization particularly difficult. In this research, we study the Vehicle Routing Problem under time-dependent travel times and driving hours regulations. We propose a generic solution method for Vehicle Routing Problems that can handle various restrictions, such as vehicle capacities and time windows. Furthermore, we demonstrate that this method performs very well on problems which include driving hours regulations. Test results on Vehicle Routing Problems with traffic congestion are also very promising. Most delays caused by traffic congestion can be avoided by considering them when developing vehicle route plans. This is done by avoiding predictably busy areas during problematic hours. The solution methods proposed in this thesis are not limited to the problems they were initially designed for. We illustrate how they can be used in other studies, such as policy making, by analyzing vehicle routing from a distributed decision making perspective. In conclusion, there are various applications of the solution methods proposed in this thesis and they may allow for substantial improvements in practice.