         case .Connect:         return "CONNECT"
         case .Options:         return "OPTIONS"
         case .Trace:           return "TRACE"
-        case .Copy:            return "COPY"
-        case .Lock:            return "LOCK"
-        case .MkCol:           return "MKCOL"
-        case .Move:            return "MOVE"
-        case .PropFind:        return "PROPFIND"
-        case .PropPatch:       return "PROPPATCH"
-        case .Search:          return "SEARCH"
-        case .Unlock:          return "UNLOCK"
-        case .Bind:            return "BIND"
-        case .Rebind:          return "REBIND"
-        case .Unbind:          return "UNBIND"
-        case .ACL:             return "ACL"
-        case .Report:          return "REPORT"
-        case .MkActicity:      return "MKACTIVITY"
-        case .Checkout:        return "CHECKOUT"
-        case .Merge:           return "MERGE"
-        case .MSearch:         return "MSEARCH"
-        case .Notify:          return "NOTIFY"
-        case .Subscribe:       return "SUBSCRIBE"
-        case .Unsubscribe:     return "UNSUBSCRIBE"
-        case .Patch:           return "PATCH"
-        case .Purge:           return "PURGE"
-        case .MkCalendar:      return "MKCALENDAR"
-        case .Link:            return "LINK"
-        case .Unlink:          return "UNLINK"
-        case .Raw(let method): return method.uppercaseString
+        case .Other(let method): return method.uppercaseString
         }
     }
 }

public enum HTTPMethod {
    case Delete
    case Get

    case Connect
    case Options
    case Trace
    case Other(method: String)
}

extension HTTPMethod: Hashable {
