This seems a bit clunky.  Does it make any sense for GroupUtils::Group() to be able to group items and only return the items grouped at all (with a different param to GroupAttributeIgnoreSingleItems) ?