A branch-and-cut algorithm for a realistic dial-a-ride problem. (November 2015)