groovy

groupBy with a list or an array of closures as it's parameter for nested grouping