@Test
	public void testFlowConditionalDelaySlot() throws Exception {

		programBuilder.addBytesCallWithDelaySlot(10, 20);
		programBuilder.addBytesReturn(14);

		programBuilder.addBytesFallthrough(20);
		programBuilder.addBytesReturn(22);

		programBuilder.disassemble(toHex(10), 6, false);
		programBuilder.disassemble(toHex(20), 4, false);

		Address addr = address(10);
		AddressSet addressSet = new AddressSet(addr);
		FlowType[] flowsNotToFollow = new FlowType[] {};
		FollowFlow followFlow = new FollowFlow(program, addressSet, flowsNotToFollow); // FollowAllFlows
		AddressSet flowAddresses = followFlow.getFlowAddressSet(TaskMonitor.DUMMY);

		AddressSet expectedAddresses = new AddressSet();
		expectedAddresses.add(address(10), address(15));
		expectedAddresses.add(address(20), address(23));

		assertEquals(new MySelection(expectedAddresses), new MySelection(flowAddresses));

	}
10: callds 20 --+
    12: _or         |
    14: ret         |
                    |
    20: or   <------+
    22: ret
    
simple delay slot flow
Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/select/flow/FollowDelaySlotFlowTest.java