Of course it is possible to nest conditions:

condition = {
and: [
{ and: [{ when: 'x', pattern: /true/ }, { when: 'z', is: 'true' }]},
{ or: [{ when: 'y', pattern: /true/ }, { when: 'a', is: 'true' }]},
],
};