Shortest path with a given condition
First let's look at the special condition.
For each edge $p_i p_{i+1}$ in the path $P$ the has to exists an additional path that connects $p_i$ with $p_{i+1}$. This criterion is equivalent to: no edge of the path is a bridge edge.

This means that we can determine already before the actual shortest path search, which edges we are allowed to use, and which edges we are not allowed to use.

Therefore you can construct an efficient algorithms as follows:


compute all bridge edges (e.g. with Tarjan's bridge-finding algorithm)
remove all bridge edges from the graph
execute any shortest path algorithm, e.g. BFS, on the remaining graph


Some additional notes, since you wrote that you want to use multiple algorithms. However these approaches will perform a lot worse than the one described above.


of course you can also determine if an edge $p_i p_{i+1}$ is a bridge edge in other ways. E.g. remove the edge from the graph, and check if you can find a path from $p_i$ to $p_{i+1}$ with a DFS (backtracking), or with another BFS.
Also you can use Backtracking itself to find the shortest path at the end.