Add functional tests.
Fix `slake watch`