How to efficiently find a loop between two nodes in a directed graph? Given two nodes in a directed graph, how can I find a loop (if exists) that pass these two nodes? The loop cannot pass a node more than once. And if there isn't such a loop, how to efficiently determines it?
This problem has been shown to be NP-complete in the following paper:


  S. Fortune, J. Hopcroft, J. Wyllie:
  "The directed subgraph homeomorphism problem"
  Theoretical Computer Science 10 (1980), pp. 111-121