Agrupar e contar elementos HTML por atributo de dados em jQuery

Eu estou tentando agrupar cada instância de um atributo de dados em uma lista do número de ocorrências de cada atributo em uma página, usando jQuery. Semelhante ao agrupamento de categorias ou tags em uma seção de notícias.

Por exemplo, eu gostaria de criar algo assim:

Categoria 1 (5)Categoria 2 (3)Categoria 3 (1)

deste html:

<ul class="categories">
   <li data-category="category-1">Category 1</li>
   <li data-category="category-1">Category 1</li>
   <li data-category="category-1">Category 1</li>
   <li data-category="category-1">Category 1</li>
   <li data-category="category-1">Category 1</li>
   <li data-category="category-2">Category 2</li>
   <li data-category="category-2">Category 2</li>
   <li data-category="category-2">Category 2</li>
   <li data-category="category-3">Category 3</li>
</ul>

Como posso conseguir isso no jQuery? É mesmo possível?

questionAnswers(5)

yourAnswerToTheQuestion