Is there any way to handle variable number of segments in a route definition ?

Using Catch-All Routes
Normally, in order to match a route, a URL must contain a particular number of segments. If you want to match a URL, regardless of the number of segments in the URL, then you need to create something called a catch-all parameter.

Here’s an example of a route that uses a catch-all parameter:

new {controller = "Sort", action = "Index"}

Notice that the route parameter named values has a star in front of its name. The star marks the parameter as a catch-all parameter. This route matches any of the following URLs: