         self.trailing = trailing
     }
 
-    public func filter(filter: LayoutEdge...) -> EdgeAnchors {
-        return self.filter(filter)
-    }
-
-    public func filter(filter: [LayoutEdge]) -> EdgeAnchors {
+    private func filter(filter: [LayoutEdge]) -> EdgeAnchors {
         var filteredAnchors = self
         filteredAnchors.includedEdges = includedEdges.filter { filter.contains($0) }
 

        return [top, leading, bottom, trailing].flatMap { $0 }
    }

    public subscript (edge: LayoutEdge) -> NSLayoutConstraint? {
        get {
            switch edge {
            case .Top:      return top


// MARK: - LayoutEdge

private enum LayoutEdge {

    case Top, Leading, Bottom, Trailing

    static let Horizontal = [Leading, Trailing]
    static let Vertical = [Top, Bottom]
    static let All = [Top, Leading, Bottom, Trailing]

    var axis: UILayoutConstraintAxis {
        switch self {
        case .Top, .Bottom:
            return .Vertical
