As of RouterOS 7.4beta4 a generic matcher was implemented. See the manual at https://help.mikrotik.com/docs/display/ROS/DHCP#DHCP-Genericmatcher .
I have the same usecase as some posters above, where I wanted to load iPXE from a servers UEFI PXE implementation, and then break the loop, as based on the ISC dhcpd instructions on the iPXE site here: https://ipxe.org/howto/dhcpd#pxe_chainloading
I tried setting different option-sets for options 66/67 but I’m not sure that those options are even usable this way. This is because the next-server and boot-file-name options have to be set on the DHCP network in MikroTik. No matter what I tried to match using the generic matcher feature, the option sets were not applied by my MikroTik RB4011 running RouterOS 7.5.
However it turns out that there is a badly-documented feature for new versions of iPXE that allowed me to break the loop: even when ipxe.efi is loaded through PXE/TFTP, it will request a file called ‘autoexec.ipxe’ using TFTP from the same server. So the solution is simply to add that file to the existing MikroTik TFTP configuration alongside ipxe.efi and let it chainload to an ipxe script on a webserver, basically using the script from the iPXE chainloading page here: https://ipxe.org/howto/chainloading
The question left is whether the generic matching feature is supposed to only vary the address-pool, or whether it is also possible to vary the option-set when matched. For now I don’t have a need to use it anymore.
Hope this helps anyone trying to use the built-in MikroTik DHCP/TFTP server and breaking the iPXE boot loop.
EDIT: Apparently there is some fix for the matcher functionality coming in 7.6, see http://forum.mikrotik.com/t/v7-6beta-testing-is-released/160567/1 .