Allow custom URL protocols, closes #260