Alinhar ao centro e à direita elementos flexbox

eu gostaria de terA B eC alinhado no meio.

Como posso obterD ir completamente para a direita?

ANTES:

DEPOIS DE:

Qual é a melhor prática para fazer isso?

ul {
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
li {
  display: flex;
  margin: 1px;
  padding: 5px;
  background: #aaa;
}
li:last-child {
  background: #ddd;
  /* magic to throw to the right*/
}
<ul>
  <li>A</li>
  <li>B</li>
  <li>C</li>
  <li>D</li>
</ul>

https://jsfiddle.net/z44p7bsx/

questionAnswers(4)

yourAnswerToTheQuestion