If by path you mean a sequence of vertices v(1),v(2),...,v(k) where v(1) = source, v(k) = destination and there is always an edge between v(i) and v(i+1), then pseudocode could be:
void dfs(int v)
seen[v] = true
for x in edges[v]
if seen[x] == false
path[x] = v
dfs(x)
call dfs(source) and set path[source] = -1.
and path from source to destination can then be found like
vector<int> path(int destination)
vector<int> result
int current = destination
do
result.push_back(current)
current = path[current]
while current != -1
reverse(result)
return result