I have a project that uses a Zero. Now they are becoming harder to find I bought an M0 Pro and did the following to turn it into a Zero:
1) Select Zero in IDE and burn bootloader onto the M0 Pro
2) Wire up the ATN pin by adding this wire:

3) Add this code to swap pins 2 and 4:
#ifdef ARDUINO_SAMD_M0_PRO
#define M0PRO_PINSWAP(pin) (((pin)==2||(pin)==4) ? (6-(pin)) : (pin))
#else
#define M0PRO_PINSWAP(pin) (pin)
#endif
Be sure to define ARDUINO_SAMD_M0_PRO somewhere! Then wrap any code using D2 or D4 with M0PRO_PINSWAP.
4) Remove the 2 I2C pull-ups that aren't populated on the Zero.

If anyone can spot any other differences, let me know!