No Constraints, Single Use
On a graph with no constraints, that the program has never seen before (or even part of before), and won't see again. About the only thing you can do is a breadth-first search or a depth-first search.
You might consider using an incremental depth-first search if memory is an issue.
You might consider launching multiple threads on the graph to look along different branches. You would need to coordinate so they don't repeat work by having a concurrent shared data structure they can all inspect and write to safely. With concurrency, you could have some threads searching from the start to end and others from end to start.
On a graph with cycles, you would want to mark nodes as visited, so as to not perform infinite loops.
Constraints, Single Use
Think about your graph and your objective.
Is the graph dense or sparse?
Are there negative edge weights? negative sum cycles?
Does it follow the Trapezoidal rule?
Is there a Maximum Distance beyond which you don't care if there is a path?
Is the graph acyclic?
Is the graph "simple"?
With some work, you may be able to find an approach that is better than dfs for your graph. Other times, you may be able to structure your graph in a different way that makes dfs faster. Sometimes, the advantage may come from not having to store as much data during the search.
Constraints, Multi-Use
If it is worth it, you might run Floyd-Warshall to solve for the shortest paths between every pair of nodes. The algorithm would take some time, but it might be advantageous when you can just perform a look-up for the shortest path in your critical section.
Rather than pre-solving for the shortest paths, you could pre-solve for the connected components by performing an initial dfs on the graph.
If the graph can change, but not drastically, you might be able to simply modify your pre-calculated results, rather than starting over at the beginning each time.
Last Thoughts
The size and complexity of the graph are important considerations. The best algorithm for small, densely connected graphs is going to be different for large sparse graphs or for trees.