_.mixin({
    traverse: function (arr, pluck) {
        var allItems = [];
        _.forEach(arr, function (item) {
            allItems.push(item);
            var subItems = item[pluck];
            if (_.isArray(subItems))
                allItems = allItems.concat(_.traverse(subItems, pluck));
        });
        return allItems;
    }
});