Yes, perhaps with Cypher or with a dedicated endpoint API Neo4j ReST.
By the way, examples from the Cypher Neo4j documentation explain themselves:
http://neo4j.com/docs/milestone/query-match.html#_shortest_path
To get shortestPath between two nodes:
MATCH (from: Location {LocationName:"x"}), (to: Location {LocationName:"y"}) , path = shortestPath((from)-[:CONNECTED_TO*]->(to)) RETURN path
If you want to get all the shortest
MATCH (from: Location {LocationName:"x"}), (to: Location {LocationName:"y"}) , paths = allShortestPaths((from)-[:CONNECTED_TO*]->(to)) RETURN paths
If you want to order by the length (number of transitions) of the tracks in descending order:
MATCH (from: Location {LocationName:"x"}), (to: Location {LocationName:"y"}) , paths = allShortestPaths((from)-[:CONNECTED_TO*]->(to)) RETURN paths ORDER BY length(paths) DESC
If you want to get shortestPath + the sum of the distance distance property:
MATCH (from: Location {LocationName:"x"}), (to: Location {LocationName:"y"}) , path = shortestPath((from)-[:CONNECTED_TO*]->(to)) WITH REDUCE(dist = 0, rel in rels(path) | dist + rel.distance) AS distance, p RETURN p, distance
source share