let assume that I want to create directive that matched only for element that match amInput[type=dropdown] how can I do that? 
I can for example:
.directive('amInput',function () {
        return {
            restrict: "E",
            scope: {
                data:'@'
            },
            compile:function(tElement, tAttrs){
                if (tAttrs.type != 'dropdown') return;
                return  function link ($scope, element, attr, ctrl) {
                    var parseResult = parse($scope.data);
                }
            }
        }
    });
but if I define another directive with isolate scope for am-input[type=checkbox]
.directive('amInput',function () {
        return {
            restrict: "E",
            scope: {
                data2:'@'
            },
            compile:function(tElement, tAttrs){
                if (tAttrs.type != 'checkbox') return;
                return  function link ($scope, element, attr, ctrl) {
                    var parseResult = parse($scope.data2);
                }
            }
        }
    });
angular#$compile throw exception about two directives  define isolate scope.
Error: [$compile:multidir] Multiple directives [amInput, amInput] asking for   new/isolated scope on: <am-input type="checkbox"></am-input> 
 
     
    