add groupby feature

add groupby feature that return a `map[T][]T`