Насколько я знаю, ангуляр не поддерживает wildcard в маршрутах.
Во-вторых, в вашем случае никто не сможет распознать, когда в маршруте категория, а когда продукт.
Можно решить это вставкой дополнительных "указаний" и для каждого возможного варианта, видимо, придется делать свой маршрут. В итоге получится что-то вроде такого:
app.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/catalogue/category/:category/:product', {templateUrl: 'xxx.html', controller: 'xxxCtrl'})
.when('/catalogue/category/:category/subcategory/:subcategory/:product', {templateUrl: 'xxx.html', controller: 'xxxCtrl'})
.when('/catalogue/:category/:category', {templateUrl: 'xxx.html', controller: 'xxxCtrl'});
}]);
и так далее.