     :function resolve-locations!
     :required-arguments {:repositories ["-R" "--repository"]
                          :requirements ["-r" "--requirement"]}
-    :cli [["-f" "--conflict-strat STRAT"
+    :cli [
+          ["-a" "--enable-alternatives" "Consider all alternatives"
+           :id :alternatives
+           :default true
+           :assoc-fn (fn [m k v] (assoc m :alternatives v))]
+          ["-A" "--disable-alternatives" "Consider only first alternatives"
+           :parse-fn not
+           :assoc-fn (fn [m k v] (assoc m :alternatives v))]
+          ["-f" "--conflict-strat STRAT"
            "May be 'exclusive', 'inclusive' or 'prioritized'."
            :default "exclusive"
            :validate [#(or (= "exclusive" %)

        :present-packages present-packages
        :strategy (keyword resolve-strat)
        :conflict-strat (keyword conflict-strat)
        :compare cmp)]
    (case
      (first result)
      :successful

  resolve-locations!
  [options arguments]
  (let
      [{:keys [alternatives
               repositories
               resolve-strat
               conflict-strat
               index-strat
