We present a new algorithm, A*Prune, to list (in order of increasing length) the first K Multiple-Constrained-Shortest-Path (KMCSP) between a given pair of nodes in a digraph in which each arc is associated with multiple Quality-of-Service (QoS) metrics. The algorithm constructs paths starting at the source and going towards the destination. But, at each iteration, the algorithm gets rid of all paths that are guaranteed to violate the constraints, thereby keeping only those partial paths that have the potential to be turned into feasible paths, from which the optimal paths are drawn. The choice of which path to be extended first and which path can be pruned depend upon a projected path cost function, which is obtained by adding the cost already incurred to get to an intermediate node to an admissible cost to go the remaining distance to the destination. The Dijkstra's shortest path algorithm is a good choice to give a good admissible cost. Experimental results show that A*Prune is comparable to the current best known ffl-approximate algorithms for most of randomly generated graphs. BA*Prune, which combines the A*Prune with any known polynomial time ffl-approximate algorithms to give either optimal or ffl-approximate solutions to the KMCSP problem, is also presented. Keywords---shortest paths, constraint based routing, QoS routing, multiple constrained path selection, Dijkstra algorithm, NP complete. I.