Shortest Path with a twist
First, your algorithm is not |V|+|E| because each node can be visited more than once. This is because at each stage of your BFS, there is not greedy to always visit the optimal next node. If you are generating all paths, each path visits at most all the nodes once, so the time complexity of your algorithm would actually be O(PN) where P is the total number of paths. In fact, it is likely way larger because each edge can be visited more than once.
However, there is another algorithm that can be applied to this non-negative edge-weight graph: Dijkstra's Algorithm.
To deal with the turbo charger, simply expand the graph such that each each state in your heap stores both the current weight and wether the charger has been used.