Async e Await

Suponha a seguinte function:

function teste() {
    let verde = espere5SegundosEImprimeVerde();
    espere4SegundoEImprimeAmarelo();
    let azul = transformaVerdeEmAzulEImprimeAzul(verde);
}

Logicamente, pelo modo assíncrono que o javascript trabalha isso iria imprimir

undefined
amarelo
verde

pois enquanto os dois primeiros comandos estão “processando” o terceiro já está livre pra ser executado, depois é liberado e segundo, e finalmente o primeiro.

A pergunta é o seguinte: Como usar async / await para que o terceiro comando somente seja executado quando sua dependência estiver concluída?