A system for controlling an engine of a vehicle, the system comprising: at least one monitoring device mounted on the vehicle that monitors an environment surrounding at least a portion of the vehicle; a controller in electronic communication with the at least one monitoring device; characterized in that it further comprises a computer readable memory (75, 77) storing instructions that, when executed by the controller, cause the controller to: determine a current driving path of the vehicle based on data received from the at least one monitoring device, detect traffic congestion ahead of the vehicle in the current driving path based on data received from the at least one monitoring device, determine whether an alternative driving path of the vehicle exists based on data received from the at least one monitoring device, determine, when there is traffic congestion and no alternative driving path exists, whether the vehicle will come to a complete stop behind the traffic congestion, calculate, when there is traffic congestion, no alternative driving path exists, and the vehicle will come to a complete stop behind the traffic congestion, a first probability that the traffic congestion will not move within a defined time period using a first statistical model, and stop the engine before the vehicle comes to a complete stop when the first probability is greater than a first threshold. at least one monitoring device mounted on the vehicle that monitors an environment surrounding at least a portion of the vehicle; a controller in electronic communication with the at least one monitoring device; characterized in that it further comprises a computer readable memory (75, 77) storing instructions that, when executed by the controller, cause the controller to: determine a current driving path of the vehicle based on data received from the at least one monitoring device, detect traffic congestion ahead of the vehicle in the current driving path based on data received from the at least one monitoring device, determine whether an alternative driving path of the vehicle exists based on data received from the at least one monitoring device, determine, when there is traffic congestion and no alternative driving path exists, whether the vehicle will come to a complete stop behind the traffic congestion, calculate, when there is traffic congestion, no alternative driving path exists, and the vehicle will come to a complete stop behind the traffic congestion, a first probability that the traffic congestion will not move within a defined time period using a first statistical model, and stop the engine before the vehicle comes to a complete stop when the first probability is greater than a first threshold. determine a current driving path of the vehicle based on data received from the at least one monitoring device, detect traffic congestion ahead of the vehicle in the current driving path based on data received from the at least one monitoring device, determine whether an alternative driving path of the vehicle exists based on data received from the at least one monitoring device, determine, when there is traffic congestion and no alternative driving path exists, whether the vehicle will come to a complete stop behind the traffic congestion, calculate, when there is traffic congestion, no alternative driving path exists, and the vehicle will come to a complete stop behind the traffic congestion, a first probability that the traffic congestion will not move within a defined time period using a first statistical model, and stop the engine before the vehicle comes to a complete stop when the first probability is greater than a first threshold.