Agrupamento por dois campos no XSL

Eu tenho o próximo xml:

<page>
   <document>
      <id>1001</id>
      <cur>USD</cur>
      <date>01.01.2009</date>
      <amount>10</amount>
   </document>
   <document>
      <id>1001</id>
      <cur>USD</cur>
      <date>02.01.2009</date>
      <amount>15</amount>
   </document>
   <document>
      <id>1001</id>
      <cur>JPY</cur>
      <date>01.01.2009</date>
      <amount>5</amount>
   </document>
   <document>
      <id>1002</id>
      <cur>USD</cur>
      <date>01.01.2009</date>
      <amount>5</amount>
   </document>
   ...
</page>

E eu preciso transformá-lo em html. Os registros devem ser agrupados poridentidade ecur. E após cada grupo, a quantia total deve ser mostrada. Então, nós queremos algo assim:

Bill: id=1001, cur=USD
      date=01.01.2009   amount=10
      date=02.01.2009   amount=15
      total amount=25
Bill: id=1001, cur=JPY
      date=01.01.2009   amount=5
      total amount=5
Bill: id=1002, cur=USD
      date=01.01.2009   amount=5
      total amount=5
...

Como posso conseguir isso usando XSL?

Quando tentei encontrar resposta no google eu encontrei o método Muenchian, mas é muito complicado quando queremos agrupar o resultado por 2 campos. Sou iniciante em xsl e é um pouco difícil para mim. Eu também encontrei o operador xslt 2.0 para cada grupo. É suportado pelos principais navegadores? É normalmente para usá-lo ou devemos confiar apenas no xslt 1.0?

questionAnswers(2)

yourAnswerToTheQuestion