Kevin: de Bruijn-based topology with demand-aware links and greedy routing