Combine spreads in another way

i have a 4 slices spread(a1,a2,a3,a4) and a 1slice spread(b1) . if possible i want 1 spread with 5 slices but the order of the slices in the new spread should in the order I want… like:

b1 or a1 or a1
a1 a2 a2
a2 a3 b1
a3 a4 a3
a4 b1 a4


use Cons (Spreads) to append a and b
then use GetSlice (Spreads) with some clever indices. you may like to use a switch to select between different permutations.

or use Stallone to split a into several outputs. use another stallone to pack everything back into one spread. use the inspektor. use lots of connections inbetween.

… i often think, we need some clever index functions for different purpose. but how to generalize is the problem …